Exchange of Information in a Communication Network

ABSTRACT

A portable node capable of forming ad hoc networks with other nodes is disclosed, as well as a method of transferring at least a first and a second information entity (e.g. files) from a first node to other nodes in an ad hoc network. At least the first and the second information entities are jointly encoded, in the first node, into a composite information entity) in a manner so that the composite information entity can be decoded by use of at least the first information entity or the second information entity. The composite information entity is subsequently transmitted.

FIELD OF THE INVENTION

The present invention relates to the field of ad hoc communicationsnetworks, and in particular to the field of information exchange in anad hoc network.

BACKGROUND

Many mobile wireless electronic devices of today can communicate withsurrounding devices and thus act as nodes in an ad hoc network. Ad hocnetworks are spontaneous, self-configuring networks with no fixedinfrastructure, which may be formed when electronic devices are in thevicinity of each other. Nodes may enter into, or exit from, an ad hocnetwork as the different devices approach or move away from each other,respectively. The nodes forming an ad hoc network are normally on a parwith each other, so that none of them have a different responsibilityfor the transmission within the network than the other nodes. Typically,a node in an ad hoc network is a portable, battery-powered device suchas a lap-top computer, a personal digital assistant, an MP3 player or amultimedia mobile phone.

A node in an ad hoc network can be made to exchange information withanother node in the ad hoc network, see e.g. M. Jacobsson et al.,“Push!Music: Intelligent Music Sharing on Mobile Devices”, The 7^(th)International Conference on Ubiquitous Computing, September 2005,wherein a system for pushing music files from a first node in an ad hocnetwork to another node in the ad hoc network is disclosed. The pushingof music files may be initiated by the user of the first node, or by anagent file software in the first node, which can compare the listeningpattern of the first node to that of other nodes in order to identifysimilar listening patterns and hence potential receivers of the contentsof the first node.

Another disclosure of information exchange in an ad hoc network is givenin Bach et al., “Bubbles: Navigating Multimedia Content in Mobile Ad-hocNetworks”, Proceedings of the 5^(th Wireless World Conference) 2004,Surrey, UK. A system is disclosed wherein a software application in afirst node in an ad hoc network can detect when other devices are in theproximity of the node. When another device has been detected, theapplication in the first node shows a list of available music files inthe other device. The end user can then initiate download of informationfrom the other device to the first node via unicast (peer-to-peer)communication.

One of the benefits of information exchange between nodes in an ad hocnetwork is that the different users of nodes in an ad hoc ad networkoften know each other (since the nodes were brought in the vicinity ofeach other), and the chances that the contents of one node would beinteresting to users of the other nodes is therefore high. However,multimedia files, such as music or film tiles, are often very large.Transmissions of such files between nodes in an ad hoc network aretherefore time and/or bandwidth consuming. Since the transfer of largefiles between nodes generally takes a long time. the power consumedduring the transfer of a file is large, which is especially undesirableas the nodes are typically battery-powered. A method that can provideefficient transmission of information between nodes in an ad hoc networkis therefore desired.

SUMMARY

A problem to which the present invention relates is how to make theinformation exchange in an ad hoc network more efficient.

This problem is addressed by a method of transferring at least a firstinformation entity from a first node to a second node and a secondinformation entity from the first node to a third node, wherein thefirst node comprises the first and second information entities; thesecond node comprises the second information entity; and the third nodecomprises the first information entity. The method comprises forming anad hoc network including at least the first, second and third node. Themethod is characterised by: jointly encoding, in the first node, atleast the first information entity and the second information entityinto a composite information entity in a manner so that the first or thesecond information entity can be used in decoding of the compositeinformation entity; and transmitting, from the first node, a compositemessage comprising the composite information entity.

The problem is further addressed by computer program code arranged toexecute the inventive method when run on computer means, and a portablenode capable of forming an ad hoc network with other nodes. The portablenode comprises a memory arranged to store information entities such asfiles containing music or films; an encoder arranged to jointly encodeat least a first information entity and a second information entitystored in the memory into a composite information entity in a manner sothat the composite information entity can be decoded by use of at leastthe first information entity or the second information entity; anoutput, coupled to the encoder, for outputting a composite messageincluding the composite information entity.

By the invention is achieved that the throughput gain can be increasedwhen a first node transmits at least two information entities, since theinformation entities may be jointly encoded into a composite informationentity which is shorter than the sum of the lengths of the at least twoinformation entities.

The throughput gain is particularly large when neither the first nor thesecond information entities are transmitted from the first node to thesecond or third nodes after the step of forming the ad hoc network andprior to the step of transmitting the composite message.

According to an embodiment of the invention, a node in the ad hocnetwork receives identification data identifying information entitiesstored in connection with at least two other nodes in the ad hocnetwork, and uses the received identification data in identifying thefirst and the second information entities to be jointly encoded. Byacquiring knowledge of which information entities are stored in theother nodes, the selection of information entities to be used in formingthe composite information entity can be efficiently made in a manner sothat a composite information entity formed can be decoded by at leasttwo nodes in the ad hoc network. The identification data can be receivedin the node via a user interface, or from other nodes in the ad hocnetwork via a connection such as a radio or an infrared connection.

In one embodiment of the invention, a benefit measure of a compositeinformation entity is calculated in a manner so that the benefit measurereflects the throughput gain achieved by transmitting the compositeinformation entity instead of the first and second information entities.The benefit measure can be used when determining which informationentities should be used in forming the composite information entity, andfor giving priority to different composite information entities that maybe formed, so that the composite information entities providing highbenefit can be transmitted first. An ad hoc network can cease to existat any time, and it is often desirable to begin with transmitting thecomposite information entities that can convey as much information aspossible to as many recipients as possible.

In one aspect of this embodiment, the benefit measure of compositeinformation entities that can be transmitted by other nodes is alsocalculated, and the scheduling of the composite message is determined byuse of benefit measures of composite information entities that may beformed by the first node as well as benefit measures of compositeinformation entities that may be formed by other nodes in the ad hocnetwork. In this way, the overall efficiency of the ad hoc network canbe maximised, so that the node which can form the composite informationentity yielding the highest benefit measure can be the first node totransmit, and so forth. In this aspect, information on the length of aninformation entity stored in a node can preferably be made available tothe other nodes, for example via the identification data identifying aninformation entity, so that the benefit measure calculation can takeinto account the comparative length of the information entities that arejointly encoded.

The composite message could advantageously comprise identification dataof the information entities that have been used in forming the compositeinformation entity of the composite message.

A portable node according to the invention could advantageously furtherhas an input for receiving a composite message comprising a compositeinformation entity; and a decoder arranged to decode the receivedcomposite information entity by use of an information entity stored inthe memory. An ad hoc network is generally of a flat structure, whereall participating nodes are able to transmit and receive information,and where no node has any predefined role or responsibility. Hence, bycomprising an input and a decoder, the portable node can receiveinformation entities encoded into a composite message from other nodes.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention, and theadvantages thereof, reference is now made to the following descriptionstaken in conjunction with the accompanying drawings, in which:

FIG. 1 is a schematic illustration of an example of an ad hoc network atthree different point in time.

FIG. 2 illustrates an example of how the contents of different nodes inan ad hoc network may overlap.

FIG. 3 illustrates the forming of a composite information entity fromtwo different information entities.

FIG. 4 illustrates an example of a composite message including acomposite information entity.

FIG. 5 is a flowchart schematically illustrating an embodiment of theinventive method.

FIG. 6 illustrates an example of a node according to the invention.

DETAILED DESCRIPTION

A schematic illustration of an ad hoc network 100 is given in FIG. 1. Anad hoc network 100 is formed when electronic devices, hereinafterreferred to as nodes 105, discover each other via signalling and thenform an ad hoc network 100. Electronic devices which may act as nodes105 in an ad hoc network often mobile wireless electronic devices suchas lap-top computers, personal digital assistants, MP3-players andmultimedia mobile phones. Such mobile wireless electronic devices canalso communicate with stationary (wireless or wired) electronic devices,such as personal computers and servers in local area networks. An ad hocnetwork 100 can comprise a mixture of mobile and stationary devicesforming nodes 105.

The ad hoc network 100 of FIG. 1 is illustrated at three differentpoints in time: T₁, T₂ and T₃. At these points in time, the ad hocnetwork 100 comprises the nodes 105A, 105B and 105C. At the point intime T₃, the ad hoc network 100 further comprises a node 105D. The adhoc network 100 may be a full mesh, wherein all nodes 105 can hear allother nodes 105, or partial mesh, wherein all nodes 105 cannot hear allother nodes 105 within the network 100. Generally, any node 105 of an adhoc network 100 can act as a transmitter or receiver of information, andtypically, no node 105 has a more central role in the ad hoc network 100than the other nodes 105. The nodes 105 that are included in an ad hocnetwork 100 vary over time, as the electronic devices forming the nodes105 approach or move away from each other. When only one node 105 of aprevious ad hoc network 100 is still present, the ad hoc network 100ceases to exist.

In ad hoc network 100 of FIG. 1, node 105A is illustrated to transferinformation to node 105B at time T₁. At time T₂, node 105B isillustrated to transfer information to nodes 105A and 105C. At time T₃,node 105C is illustrated to transfer information to nodes 105A and 105D.At other times, other transfer situations may occur, or there may bepoints in time when no transfer at all takes place in ad hoc network100. The information transferred at different times is illustrated byinformation transfer signals 110, indicated by arrows in FIG. 1.

The object of forming an ad hoc network 100 is normally to exchangeinformation between nodes 105. Information can be exchanged either in aunicast transmission from one node 105 to another node 105, or in amulticast transmission from one node 105 to two or more other nodes 105.According to the invention, the amount of data transmitted within an adhoc network 100 can be reduced by acknowledging that some of the nodes105 forming an ad hoc network 100 may have one or more informationentities in common. In the following, the exchange of informationbetween three nodes is given as an example. However, further nodes couldbe involved for an even more efficient communication.

FIG. 2 illustrates the contents 200A, 200B and 200C of three nodes 105A,105B and 105C, respectively, of an ad hoc network 100. The informationstored in a node 105 can be seen as being formed of one or moreinformation entities 205. An information entity 205 can e.g. be a musicfile, a text file, a film file, or any other set of data that can beidentified and distinguished by a node 105. As is illustrated in FIG. 2,the contents 200 of different nodes 105 may overlap already before anyinformation exchange within the ad hoc network 100 takes place, i.e. thecontents of two or more nodes 105 may comprise the same informationentiti(es) 205. In the example given in FIG. 2, the contents 200A and200B both include the information entity 205 i, while the contents 200Aand 200C both include the information entities 205 ii and 200 iii.Furthermore, the contents 200B and 200C both include the contents 200vii.

According to the invention, the fact that an information entity 205 isoften included in the contents 200 of two or more nodes 105 in an ad hocnetwork 100 is utilised for reducing the amount of information that hasto be transmitted within ad hoc network 100 in order for a node 105 toshare parts or all of its contents 200 with some or all of the othernodes 105 of ad hoc network 100. An information entity 205 stored in twodifferent nodes 105 could either have been received by the two nodes 105from different sources, from the same source, or one of the nodes 105could have received the information entity 205 from the other node 105(e.g. in a different ad hoc network formation). When the contents 200Aof a node 105A comprise an information entity 205 i as well aninformation entity 205 ii, wherein the contents 200B of a node 105Bcomprise the information entity 205 i but not the information entity 205ii, while the contents 200C of a node 105C include the informationentity 205 ii but not the information entity 205 i, the amount of datathat has to be transmitted within ad hoc network 100 can be reduced byforming a composite information entity from the information entities 205i and 200 ii prior to transmitting. Such a composite information entitycould for example be formed by performing a bitwise XOR operation on theinformation entities 205 i and 205 ii. The node 105B which alreadycontains the information entity 205 i can, after having received thecomposite information entity, retrieve the unknown information entity205 ii by performing a bitwise XOR operation on the compositeinformation entity and the known information entity 205 i. Similarly,the node 200C can retrieve the unknown information entity 205 i byperforming a bitwise XOR operation on the composite information entityand the known information entity 205 ii. Thus, rather than performing afirst transmission of information entity 205 i, and a secondtransmission of information entity 205 ii, a single transmission of thecomposite information entity can ensure that the nodes 105 in ad hocnetwork which contain one of information entities 205 i and 205 ii, butnot the other, will receive the information entity 205 not previouslypart of the contents of nodes 105. The transmission efficiency of the adhoc network 100 is thus improved, implying reduced transmission timesand/or reduced bandwidth consumption, as well as reduced powerconsumption. In order for the inventive method to reduce the amount ofdata that has to be transmitted within the ad hoc network 100, thereshould be at least a first node 105 that includes at least a firstinformation entity 205 that is known by a second node 105B but not by athird node 105, as well as a second information entity 205 that is knownby the third node 105, but not by the second node 205.

In the example given above in relation to FIG. 2, the informationentities 205 i and 205 ii are part of the contents 200 of node 105A, aswell as of the contents 200 of nodes 105B and 105C, respectively. In alarger ad hoc network 100, the information entities 205 i may beincluded in the contents 200 of more than one node 105. Likewise, theinformation entity 205 ii may be part of the contents 200 of more thanone node 105. All nodes 105 having the information entity 205 i but notthe information entity 205 ii in their contents 200 can use thecomposite information entity in combination with information entity 205i in order to retrieve information entity 205 ii, and vice versa.

As mentioned above, the composite information entity may be formed byuse of a bitwise XOR operation on the two information entities 205 i and205 ii. Other operations may alternatively be used in forming thecomposite information entity, such as joint encoding over other Galoisfields. One may for example perform a modulus sum encoding over asegment of b bits at a time, i.e. using Galois field 2 ^(b). An exampleof how a composite information entity 300 can be formed is furtherillustrated in FIG. 3, in which a modulus sum is performed on a firstinformation entity 205 i, comprising n segments 305 referred to asA₁-A_(n), and a second information entity 205 ii, comprising m segments305 referred to as B₁-B_(m). The resulting composite information entity300 comprises n composite segments 310 (assuming that n≧m), where thek^(th) composite segment 310 contains the information A_(k)⊕B_(k), thesymbol ⊕ representing summation in any field. If m<n, the secondinformation entity 205 ii, comprising m segments 305, can advantageouslybe padded with zero words for the trailing (n−m) segments. A segment305/310 could consist of one or more bits, and an information entity 205could comprise any number of segments 305. When one of the informationentities 205 used to form the composite information entity 300 comprisesmore segments 305 than the other, zero padding could be applied so thatthe last composite segments 310 of composite information entity 300would simply correspond to the last segments 310 of the longerinformation entity 205 (see FIG. 3), or alternative methods, such asrepetition coding, could be used.

A node 105, receiving the composite information entity 300 of FIG. 3 andhaving the information entity 205 i as part of its contents 200, canthus retrieve the information entity 205 ii by performing the modulussum operation on the composite information entity 300 and theinformation entity 205 i over the n segments of composite informationentity 300, since A_(k)⊕A_(k)⊕B_(k)=B_(k).

A composite information entity 300 could be formed from more than twoinformation entities 205, if at least two nodes 105 have more than oneinformation entity 205 in common. If so, the shared information entities205 could for example be concatenated, and the joint encoding would beperformed on the concatenated information entity. In the exampleillustrated in FIG. 2, the information entities 205 ii and 205 iii couldbe concatenated, and the concatenated information entity could bejointly encoded with the information entity 205 i. This would beparticularly advantageous if both of the information entities 205 ii and205 iii both smaller than the information entity 205 i.

Moreover, provided sufficient information resides in the receiving nodes105, multiple information entities 205 can efficiently be encoded intothe same composite information entity 300: A_(k)⊕B_(k)⊕C_(k)⊕ . . . ,where A_(k) is a segment of a first information entity 205 i, B_(k) is asegment of a second information entity 205 ii, C_(k) is a segment of athird information entity 205 iii etc, (where an information entity 205may or may not be a concatenated information entity, cf. the precedingparagraph). This allows more than two information entities 205 to betransmitted in the same composite message 400. For example, if a firstnode 105A has information entities 205 i, 205 ii and 205 iii, a secondnode 105B has information entities 205 i and 205 ii, a third 105C hasinformation entities 205 i and 205 iii, and a fourth node 105D hasinformation entities 205 ii and 205 iii, then the first node 105A mayadvantageously transmit a composite information entity 300 comprisingthe composite segments A_(k)⊕B_(k)⊕C_(k). Each of the receiving nodes105B, 105C and 105D may, from the a priori information and the compositeinformation entity 300, decode a missing information entity 205. Thus, acomposite information entity 300 can be decoded by using all but one ofthe information entities 205 that were used in forming the compositeinformation entity.

A composite message 400 having as its payload the composite informationentity 300 is exemplified in FIG. 4. The composite message 400 of FIG. 4further includes a header 405, in which information is included on theidentity of the information entities 205 (two or more) which have beenused to form the composite information entity 300. An identifieridentifying the composite message as a composite message could also beincluded in the header, e.g. as a composite message flag. Furthermore, aCyclic Redundancy Check (CRC) code 410 can be included as a tail incomposite message 400. The composite message 400 of FIG. 4 is given asan example only, and other formats of the composite message 400 may beemployed.

In an ad hoc network 100 where the concatenation of information entities205 is allowed, the header 405 could preferably comprise information onwhich information entities 205 have been concatenated, how the differentinformation entities 205 are coded together and in which order thedifferent information entities 205 appear in the concatenatedinformation entity.

A composite message 400 comprising a composite information entity 300may include an address field comprising the addresses of the firstnodes(s) 105 and the second node(s) 105 by which the compositeinformation entity 300 could be used for retrieving additionalinformation, or message 400 could be sent as a multicast message to allthe nodes 105 of ad hoc network 100, thus not needing an address field.Nodes 105 which already have both information entities 205 i and 200 iias part of their contents, as well as nodes 105 which have neitherinformation entity 205 i nor 200 ii, can either ignore the compositemessage 400, or store the composite message 400 for future use—a node105 which do not at the moment have information entity 205 i nor 200 iiin its contents 200 may at a later point in time receive one ofinformation entities 205 i and 200 ii, and can then, if compositemessage 400 has been stored, retrieve the other information entity 205.

By sending the composite message 400 comprising the compositeinformation entity 300, the amount of data that has to be transmitted bythe transmitting node 105 is greatly reduced. The amount of extrapayload that would have to be transmitted if the information entities205 i and 200 ii were to be sent separately (either in the same messageor in two different messages) instead of in a composite message 400,would be equal to the number of bits of the shorter of the twoinformation entities 205 used to form the composite information entity300. The composite message 400 can simultaneously convey a firstinformation entity 205 to at least one node 105 and second informationentity 205 to at least one other node 105 while using the payload spaceof the longer information entity 205, since a priori information storedin the respective nodes 105 is used for extracting the respectiveunknown information entities 205. Furthermore, the probability ofsuccessful reception is higher for the transmission of a compositeinformation entity 300 than for the transmission of a single informationentity 205.

Information entities 205 that are stored in one node 105 only, such asinformation entities 205 iv, 205 v, and 205 vi of FIG. 2, could in afirst step be transmitted to at least one other node 105 in aconventional manner, and could subsequently be encoded into a compositeinformation entity 300.

FIG. 5 is a flowchart schematically illustrating an embodiment of theinventive method. In step 500, a node 105A detects other nodes 105 andan ad hoc network 100 is formed. The detection may be initiated by anode 105 requesting other nodes 105 to reveal their presence, or by anode 105 announcing its presence followed by other nodes 105 replying tothe announcement. The degree of user involvement in the forming of an adhoc network 100 may vary. Preferably, the identities of the nodes 105are made known to the other nodes 105 during the formation of the ad hocnetwork 100. If the identities of the nodes are announced, thetransmission of information entities 205 to a receiving node 105 couldbe made conditional on the approval of the sending node 105 by thereceiving node 105. The identity of the node 105 may for example berepresented by a Media Access Control (MAC) address. Alternatively,temporary identities may be used in order to distinguish the differentnodes 105 from each other.

In step 505, identification data relating to which information entities205 are stored in other nodes 105 in ad hoc network 100 and availablefor transmission is received by node 105A. Such identification datacould for example be received by a user of node 105A manually enteringthe information via a user interface (for example, after havingexchanged identification data with other users of ad hoc network 100over other media, such as through voice or visual means). Alternatively,one or more of the other nodes in ad hoc network 100 could automaticallysend announcement messages, in which information on which informationentities 205 are available from the node 105 is included (cf. step 510),or node 105A could receive the information on which information entities205 are available from a node 105 as a response to a polling messagepreviously sent by node 105A.

In step 510, the node 105A announces which information entities 205 thatnode 105A can share with other nodes 105. This may include allinformation entities 205 stored upon node 105, or a selection of theinformation entities 205 stored upon node 105A. The node 105A may makethe announcement by means of an announcement message, which couldpreferably be transmitted as a broadcast message to all the other nodes105 in ad hoc network 100. An announcement message preferably comprisesthe identity of the node 105A, as well as identification dataidentifying information stored in the node 105A. The identification dataprovided in an announcement message could e.g. be in the form of a listof information entity identifiers, wherein each information entityidentifier identifies an information entity 205 stored upon the node105. Alternatively, information on which information entities 205 areavailable for transmission to other nodes could be transmitted inresponse to polling messages received. In an implementation in whichthis information is entered manually into the nodes 105 via a userinterface, step 510 could be omitted.

If step 505 involves the receipt of one or more announcement messages,the announcement performed in step 510 could take place before thereceipt of all or part of the announcement messages from other nodes105, i.e. before or during step 505.

In step 515, the information received in step 505 is analysed, and anyinformation entities 205 that are stored in the contents 200 of bothnode 105A and another node 105 are identified. The analysis of step 515includes comparing information entity identifiers identifyinginformation entities 205 stored in the other nodes 105 of ad hoc network100 in order to identify any shared information entities 205.

In step 520, it is determined which information entities 205 should betransmitted by node 105A based on the information received in step 505regarding the available information entities 205 in other nodes 105 andinformation regarding the information entities 205 stored in node 105A.Furthermore, it is decided whether it is advantageous to form anycomposite information entities 300 of the information entities 205 thatshould be transmitted. If there is a pair (or group) of informationentities 205 among the contents 200 of node 105A wherein a firstinformation entity 205 of the pair/group is stored in at least one node105 which comprises all but one of the information entities 205 of thepair/group as part of its contents 200, and the other informationentity/ies 205 of the pair/group is stored in at least one other node105 not having the first information entity 205 of the pair/group aspart of its contents 200, then it may advantageously be determined instep 520 that the information entities 205 of this pair/group should beencoded into a composite information entity 300. Information entities205 which cannot be grouped into such a pair/group may be transmitted ina conventional manner in a conventional message.

Furthermore, an analysis of the benefit of forming a particularcomposite information entity 300 could also be performed in step 520,resulting in a benefit measure, for example by calculating the reductionin transmission resources used for the transmission of a compositemessage 400 comprising the composite information entity 300 compared totransmitting the information entities 205 of the composite informationentity 300 in a conventional manner. Such a benefit measure could e.g.depend on the number of nodes 300 which would be able to decode thecomposite information entity 300, as well as on the length ratio of (orthe difference in length between) the information entities 205 used toform the composite information entity 300 (or the difference between theconcatenated information entities, if applicable). The benefit measuresof the different composite messages 400 could then be compared, and thecomparison could e.g. be used for determining the order in which thecomposite messages 400 should be transmitted.

In step 525, composite and/or conventional messages are formed andtransmitted in accordance with the analysis performed in step 520,preferably as multicast messages.

In step 530, any composite messages 400 received from other nodes 105are decoded. Given that the format of the composite message 400 of FIG.4 is used, the header 405 of a received composite message 400 isanalysed in order to identify which information entities 205 were usedwhen forming the composite information entity 300 included in thecomposite message 400. If all but one of those information entities 205are already stored in node 105A, then the composite information entity300 can be decoded by use of the known information entities 205 andinformation entity 205 that is not already stored in node 105A can beretrieved.

In step 535, any new information entities 205 which have beenreceived/retrieved are stored into the contents 200 of node 105A. Instep 540, the process ends.

When a node 105A transmits an information entity 205 to another node105, lower layers in node 105A could preferably send a signal to theapplication indicating when the transmission is completed. Furthermore,an acknowledgement of receipt could be sent by a node 105 havingreceived a composite information message 300. Information entityidentifiers, identifying information entities that have been transmittedbetween nodes 105, could be continuously transmitted within ad hocnetwork 100 in order to update the nodes 105 of ad hoc network 100 ofwhich information entities are known by which nodes 105.

The inventive method assumes that the nodes 105 forming the ad hocnetwork 100 have a common way of identifying the information entities205, so that an information entity 205 identified as “X” by a first node105 corresponds to an information entity 205 identified as “X” by anyother node 105 within the ad hoc network 100. In one embodiment of theinvention, an information entity 205 could be associated with a uniqueor random alphanumeric name to be used as an information entityidentifier. Both the information entity 205 and the information entityidentifier could then advantageously be integrity protected with a hashcode of the whole sequence of data (methods for this are well known inart of encryption). The use of a hash code ensures that any changes toan information identity identifier may be detected. The hash code of aninformation entity 205 could be sent as part of a message includingidentification of information entities 205 stored in a node 105(announcement message or response to a polling message), in order toensure correct identification of an information entity 205. The hashcode could also be included in the header 405 of a composite message400.

Other methods for common identification of information entities 205 indifferent nodes 105 can alternatively be used.

The determination in step 520 of which information entities 205 are tobe transmitted by node 105A could in one embodiment be based on theassumption that each node 105 desires to have as many informationentities 205 as possible as part of its contents 200. Hence, node 105Awould assume that any node 105 which does not have a particularinformation entity 205 would like to receive the information entity 205.In an alternative implementation, rather than assuming that all othernodes 105 should contain all available information entities 205 when theexchange of information entities has been completed, a node 105 couldawait a request for a particular information entity 205 from at leastone other node 105 prior to sending the information entities 205 (or acomposite information entity formed from the information entity) to theother nodes 105. A node 105 requiring a particular information entity205 would hence request the information entity 205 which, according to areceived announcement message, is stored as part of the contents 200 ofanother node 105.

If there exists at least one node 105 which does not comprise any of theinformation entities 205 of a pair of information entities 205 which ispartly shared by other nodes as described above, and which requires theinformation entities 205 of the pair, it might be considered to send theinformation entities 205 of such a pair in a conventional manner to allnodes 105, since transmission of conventional message(s) would berequired for the node 105 which does not contain the informationentities 205. Alternatively, a conventional message including one of theinformation entities 205 of the pair could be transmitted, as well asthe composite message 400, so that the node 205 lacking both informationentities could use the information entity 205 of the conventionallytransmitted message for the decoding of a composite message 400.

The flow chart in FIG. 5 illustrates the transmission and receipt ofinformation entities 205 by one node 105A. However, the method cannot beperformed independently of the other nodes in the ad hoc network 100, asis indicated in steps 505 and 530. Rather, the method of FIG. 5 wouldinvolve all or a part of the nodes 105 in ad hoc network 100 (at leastthree), and any node 105 in the ad hoc network 100 could, from time totime, take the role as the sending node 105 of composite messages 400.Hence, step 525, in which composite messages are transmitted by the node105A, would normally include waiting for access to the transmissionmedium while other nodes 105 transmit.

The invention can use any MAC protocol, such as 802.11, ALOHA, CSMA,etc. The performance can be further improved if the order in which thenodes 105 transmit is coordinated and coupled, from the applicationpoint of view, with the MAC layer.

More precisely, which node 105 shall transmit at which point in time canbe determined in different ways. For example, a so called round robinscheme could be used, according to which the nodes 105 in the ad hocnetwork 100 take turn to send one or a predetermined number ofinformation messages 400 (composite or regular messages) at a time. Theorder in which the nodes 105 transmit could for example be based on theMAC address number. Alternatively, a negotiation could take placebetween the nodes regarding which round robin order should be used.

In another embodiment, a randomization procedure is used in order todetermine which node 105 should transmit at a certain point in time.When a transmitting node 105 has stopped sending, the other nodes 105 inad hoc network 100 could randomly generate a counter value and start acount down/up until a predetermined number has been reached. The firstnode 105 to reach the predetermined number would start the transmissionof messages. If multiple nodes transmit at the same time, this may bedetected by outstanding acknowledgements, and a collision resolutionmechanism may be used. If the transmission medium is blocked by anothertransmission, the application layer of a node 105 can advantageously bemade to wait with any transmissions until the transmission mediumbecomes free, and then determine which composite entity to transmit.

In an alternative embodiment, a leading node 105 is selected in step 500when the ad hoc network is formed. The leader can then determine inwhich order the nodes 105 will transmit. This decision is thencommunicated to the other nodes.

In yet another embodiment, the access to transmission can be determinedby decentralised scheduling decisions. Assuming that all nodes 105 knowexactly which information entities 205 are available at all nodes 105 inthe ad hoc network 100, each node 105 may run a decentralised schedulingalgorithm that decides which information entities 205 should betransmitted first, second and so forth. In other words, step 515 of FIG.5 could be run by each node 105 for all nodes 105. Each node would thenknow which information entities 205 and composite information entities300 should be transmitted by every node 105 in the ad hoc network 100.The order in which these information entities 300/205 should betransmitted could then be determined by determining the benefit oftransmitting each information entity 300/205. A benefit measure could becalculated for each message to be transmitted within the network, cf.the text above in relation to step 520, and the order in which themessages should be transmitted could be determined based on this benefitmeasure. If one or more messages are of the same benefit measure,secondary rules could apply.

The centralised scheduling decisions could be more efficiently made ifthe respective lengths of the information entities stored the differentnodes 105 were known by the nodes 105, so that the benefit measures onwhich the scheduling decisions are made could account for the gainachieved by forming a particular composite information entity 300.Information on the length of an information entity 205 could e.g. beincluded in the announcement messages discussed above, or in a responseto a polling message.

A node 105 should preferably compare the information entities in any notyet transmitted messages with the information entities in messages sentby other nodes 105, in order to avoid the risk of sending messagescomprising information entities that have already been transmitted byother nodes.

Further steps could be included in the process illustrated by FIG. 5.For example, a check could be added prior to entering step 540 as towhether the exchange of information entities 205 between the nodes 105is completed. If a new node 105 enters the ad hoc network 100, theprocess of FIG. 5 could in one embodiment be interrupted and startedfrom the beginning in step 500. In an alternative embodiment, new nodes105 are ignored until the process of FIG. 5 has ended. Step 500 couldthen be re-entered, including any new nodes 105.

The embodiment illustrated in FIG. 5 is based on an announcement made bythe nodes 105 in the ad hoc network 100 of which information entities205 that are available to the other nodes (cf. steps 510 and 505). Asmentioned above, the step 510 of announcing the contents 200 could in analternative embodiment be omitted. Instead, the node 105A could poll theother nodes 105 in the ad hoc network 100 for one or more particularinformation entities 205, or the information could be entered manuallyinto node 105A via a user interface. The polling could for example beuser initiated, or the user of a particular node 105 could haveprogrammed the node 105 to poll for particular information entities 205prior to the formation of the ad hoc network 100. All nodes 105 havingthe polled information entiti(es) as part of their contents 200 mayreply that the required information entiti(es) 205 are available. Thisresponse could be eavesdropped by all or some of the other nodes 105 inthe ad hoc network 100. By overhearing the response(s) to pollingmessages, which may be sent as unicast or broadcast messages, theseother nodes 105 will get information on which other nodes 105 containthe polled information entitie(is) 205, and will thereby get informationon the a priori information entities 205 contained in the other nodes205. Encoding into composite information entities 300 of any transmittedinformation entities 205 can then be made accordingly.

An embodiment of a node 105 according to the invention is schematicallyillustrated in FIG. 6. Node 105 of FIG. 6 comprises storage means 600,onto which the contents 200 of node 105 is stored. The contents 200 maybe stored in storage means 600. Storage means 600 further includesidentification data identifying information entities stored in storagemeans 600, such as information entity identifiers. Node 105 furtherincludes an information en/de-coder 605, which comprises processingmeans and computer program code for performing the operations requiredin order to encode a composite information entity 300 from two (or more,if concatenated) information entities 205 stored in memory means 600,and to decode a composite information entity 300 into two (or more,where applicable) information entities 205 (cf. steps 525 and 530 ofFIG. 5). Node 105 further comprises an algorithm handler 610 and aprotocol handler 615, as well as a controller 620. The algorithm handler610 comprises processing means and computer program code for controllingvarious processes, and could for example include processing means andcomputer program code for announcing the available information entities205 to other nodes 105 (cf. step 510 of FIG. 5), for calculating benefitmeasures of possible composite information entities 205, for determiningwhich information entities 205 should be transmitted to other nodes, fordetermining whether the information entities 205 to be transmittedshould be encoded into a composite information entity 300, fordetermining whether node 205 should poll/request any other nodes 105 forinformation, (cf. steps 515 and 520 of FIG. 5), for determining abenefit measure of the composite messages 400 if applicable, etc. Inparticular, the algorithm handler comprises processing means andcomputer program code for comparing identification data identifyinginformation entities (205) stored in node 105 with information entityidentifiers identifying information entities (205) stored in other nodes105. The protocol handler comprises processing means and computerprogram code for encapsulating any transmitted information into aprotocol format used by the other nodes 105 in the ad hoc network 100,as well as computer program code for de-capsulation of the payloadcontained in any messages received from other nodes 105 (cf. step 525 ofFIG. 5). Controller 620 controls the overall operation of node 105, andcomprises inter alia processing means and computer program code fordetecting other nodes 105 and forming ad hoc networks 100 (cf. step 500of FIG. 5). Node 105 of FIG. 6 further includes input/output ports 625,which could for example be connected to a radio or infra-redtransmitter.

A node 105 reveals, to the other nodes 105 of ad hoc network 100,information about the contents 200 carried by node 105. Contents 200that are of interest to exchange typically comprises informationentities 205 that belong to a file exchange application. Hence, from aprotocol layer point of view, the invention is particularly applicableto the exchange of information entities 205 in the application layer.The order in which packets in the application layer is sent canadvantageously be coupled to the MAC layer.

The invention of encoding two (or more) information entities 205 into acomposite information entity 300, based on which information entities205 are stored a priori in the nodes 105 of the ad hoc network 100, canbe applied in a number of information exchange scenarios in an ad hocnetwork 100, such as ones disclosed in the publications discussed aboveby M. Jacobsson et al. and Bach et al.

As seen above, the invention contributes to reducing the amount ofbandwidth used when transmitting a at least a first information entity205 from a first node 105 to one (or more) second node(s) 105 and asecond information entity 205 from the first node 105 to one (or more)third node(s) 105 when the first and third node(s) 105 have a priorknowledge of the first information entity 205 and the first and secondnode(s) 105 have a priori knowledge of the second information entity205B. The a priori knowledge of a node could in a typical situation havebeen acquired prior to the forming of the ad hoc network 100, but alsowhen the a priori knowledge is acquired after the ad hoc network wasformed from a source which is not part of the ad hoc network 100, athroughput gain will be achieved. A throughput gain would also beachieved when the transmitting node 105A has acquired the knowledge ofthe information entities 205 included in a composite message 300 fromanother node 105 in ad hoc network that is not within the transmissioncoverage of all other nodes 105. The invention is applicable to ad hocnetworks 100 where the transmission links between the nodes 105 arestable and where no re-transmission of messages is required, as well asin less stable transmission environments.

One skilled in the art will appreciate that the present invention is notlimited to the embodiments disclosed in the accompanying drawings andthe foregoing detailed description, which are presented for purposes ofillustration only, but it can be implemented in a number of differentways, and it is defined by the following claims.

1-21. (canceled)
 22. A method of transferring at least a firstinformation entity from a first node to a second node, and a secondinformation entity from the first node to a third node, and wherein thefirst node comprises the first and second information entities, thesecond node comprises the second information entity, and the third nodecomprises the first information entity, the method comprising: formingan ad hoc network including at least the first, second, and third nodes;receiving, at the first node, first identification data identifying oneor more information entities stored in a memory associated with thesecond node, and second identification data identifying one or moreinformation entities stored in a memory associated with the third node;using the first and second identification data to identify, at the firstnode, the first and second information entities; jointly encoding, atthe first node, at least the first information entity and the secondinformation entity to generate a composite information entity that canbe decoded using at least one of the first information entity and thesecond information entity; and transmitting, from the first node, acomposite message comprising the composite information entity.
 23. Themethod of claim 22 further comprising not transmitting either of thefirst and the second information entities from the first node to thesecond or third nodes after the ad hoc network has been formed and priorto the step of transmitting the composite message.
 24. The method ofclaim 22 wherein the receiving step comprises receiving at least one ofthe first and second identification data via a user interface.
 25. Themethod of claim 22 wherein the receiving step comprises at least one ofthe first and second identification data via a connection to anothernode in the ad hoc network.
 26. The method of claim 25 furthercomprising, prior to the receiving step, sending a polling message fromthe first node polling for identification data that identifiesinformation entities stored in connection with at least one of thesecond and the third nodes.
 27. The method of claim 22 furthercomprising sending, from the first node, an announcement messagecomprising identification data that identifies one or more informationentities stored in the memory associated with the first node, and whichare available for transmission to other nodes in the ad hoc network. 28.The method of claim 22 further comprising calculating a benefit measureof the composite information entity such that the benefit measurereflects a throughput gain achieved by transmitting the compositeinformation entity instead of the first and second information entities.29. The method of claim 28 further comprising determining a schedulingfor the composite message based on benefit measures of compositeinformation entities that may be formed by the first node, and onbenefit measures of composite information entities that may be formed byother nodes in the ad hoc network.
 30. The method of claim 29 whereinthe identification data identifying an information entity comprisesinformation on a length of the information entity, and wherein theinformation on the length of an information entity is used in thecalculation of a benefit measure of a composite information entityincluding the information entity.
 31. The method of claim 22 wherein theinformation entities comprise information entities in the applicationlayer.
 32. The method of claim 22 wherein the step of jointly encodingcomprises jointly encoding the first information entity and the secondinformation entity over a Galois field.
 33. The method of claim 22wherein transmitting, from the first node, a composite message comprisesforming the composite message to comprise a first part including anidentification of the first and second information entities, and asecond part including the composite information entity.
 34. The methodof claim 22 further comprising: receiving, at the first node, acomposite message comprising a composite information entity from anothernode in the ad hoc network; and decoding the received compositeinformation entity using at least one information entity stored inmemory associates with the first node.
 35. The method of claim 22wherein the first, second, and third nodes are peer nodes in which noneof the first, second, and third nodes have a responsibility fortransmitting in the ad hoc network that is different than theresponsibilities of the other first, second, and third nodes.
 36. Themethod of claim 35 wherein at least two of the nodes forming the ad hocnetwork perform the steps of jointly encoding and transmitting while thead hoc network is formed.
 37. The method of claim 22 wherein the step ofjointly encoding comprises jointly encoding at least three informationentities into a composite information entity such that the compositeinformation entity can be decoded by using less than all of the at leastthree information entities used in the encoding.
 38. A method ofacquiring information in a node in an ad hoc network, wherein the nodecomprises a priori information including at least one informationentity, the method comprising: transmitting identification dataidentifying information entities stored in a memory associated with thenode; receiving a composite message comprising a composite informationentity formed by jointly encoding at least two information entities andidentity information identifying the information entities that were usedto form the composite information entity; checking the identityinformation to determine whether at least one information entity storedin the memory associated with the node comprises information sufficientto decode the composite information entity; and if the at least oneinformation entity comprises sufficient information, decoding thecomposite information entity using the a priori information.
 39. Acomputer readable medium having program code stored thereon forcontrolling the transfer of information from a first node comprisingfirst and second information entities, the program code configured tocontrol a computing device executing the program code to: send andreceive signaling messages associated with forming an ad hoc networkincluding at least the first node, a second node, and third node;receive first identification data that identifies one or moreinformation entities stored in a memory associated with the second node,and second identification data identifying one or more informationentities stored in connection with the third node; use the first andsecond identification data in identifying the first and secondinformation entities; jointly encode at least the first informationentity and the second information entity into a composite informationentity such that the composite information entity can be decoded usingat least one of the first information entity and the second informationentity; and transmit, from the first node, a composite messagecomprising the composite information entity.
 40. A computer readablemedia of claim 39 wherein the computer readable medium having theprogram code stored therein is sized to fit in a battery-powered devicecomprising at least one of a lap-top computer, a personal digitalassistant, an MP3 player, and a multimedia mobile phone.
 41. A portablenode capable of forming an ad hoc network with other nodes, the portablenode comprising: a first memory configured to store informationentities; an input configured to receive first identification dataidentifying one or more information entities stored in a memoryassociated with a second node and second identification data identifyinginformation entities stored in a memory associated with a third node; asecond memory configured to store internal identification dataidentifying information entities stored in the first memory; acomparator configured to compare the internal identification data withthe first and second identification data to identify a first informationentity associated with both the first and second node and stored in thefirst memory, and a second information entity associated with both thefirst and third node and stored in the first memory; an encoderconfigured to jointly encode at least the first information entity andthe second information entity stored in the first memory to form acomposite information entity that can be decoded using at least one ofthe first information entity and the second information entity; and anoutput, coupled to the encoder, configured to output a composite messageincluding the composite information entity.
 42. The portable node ofclaim 41 wherein the files included files containing at least one ofmusic and films
 43. The portable node of claim 41 further comprising: aninput configured to receive a composite message comprising a compositeinformation entity; and a decoder configured to decode the receivedcomposite information entity using an information entity stored in thememory.